查看原文
其他

最新导航综述!SLAM方法/数据集/传感器融合/路径规划与仿真多个主题

汽车人 自动驾驶之心 2023-02-14

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【SLAM】技术交流群

后台回复【SLAM综述】获取视觉SLAM、激光SLAM、RGBD-SLAM等多篇综述!

摘要

在过去几十年中,自主移动机器人领域取得了巨大的进步。尽管取得了重要里程碑,但仍有一些挑战有待解决。将机器人社区的成就汇总为综述,对于跟踪当前最先进的技术和未来必须应对的挑战至关重要。本文试图对自主移动机器人进行全面综述,涵盖传感器类型、移动机器人平台、仿真工具、路径规划和跟踪、传感器融合方法、障碍回避和SLAM等主题。论文的出发点主要有两方面。首先,自主导航领域发展很快,因此定期撰写综述对于让研究界充分了解该领域的现状至关重要。第二,深度学习方法已经彻底改变了包括自主导航在内的许多领域。因此,有必要对深度学习在自主导航中的作用进行适当的处理,这也是本文所涉及的。还将讨论未来的工作和研究差距。

机器人在很多方面影响了我们的生活。在技术进步的支持下,机器人已经在医学领域、军事领域、工业领域、空间领域、农业领域等多个应用领域找到了自己的路。将自主导航功能添加到机器人平台可以显著提高其性能,因为它们可以自行到达任何需要的地方。这种动机驱使研究人员将自主导航技术推向极限。鉴于自主导航主题的文献丰富且发展迅速,有必要定期准备文献调查。通过这种方式,经验丰富的研究人员和新来者可以深入了解自主导航的最新技术,这也是该综述的灵感来源。

显然,已经发表了多篇关于自主移动机器人的综述。为了突出论文的调查与现有调查之间的差异,编制了表1,其中现有调查根据其出版年份进行了排序。如表1所示,一些主题在以前的调查中缺失,但在本文中有所涉及。例如,Niloy等人[224]只关注室内自主导航。Pol和Murugan[236]的调查也仅限于室内导航,除了考虑了环境中的人类存在。

基于上述先前调查的缺点,本次调查旨在涵盖表1中列出的所有主题。论文努力做到:

  • 对传统和现代避障方法(基于RL和DL)进行综合处理;
  • 回顾最著名的SLAM方法;
  • 介绍众所周知的机器人模拟器,以及它们是否可以与机器人操作系统(ROS)连接[1];
  • 移动机器人平台的类型及其基于操作环境的特点;对著名的传感器融合方法(如卡尔曼滤波器[144]及其扩展以及粒子滤波器[114])进行了简单简明的回顾
  • 调查开源SLAM数据集。

传感器

如果没有感知周围环境的能力,自主行动是不可能的[249]。任何自主机器人都必须配备由硬件(传感器)和软件组件组成的感知模块。本节专门介绍自动移动机器人中常用的各种类型的传感器。

绝对定位传感器

移动机器人需要在其操作环境中移动,以便在环境中的不同位置实现其目标。例如,为了执行救援操作,救援机器人需要导航到受伤的受害者。自主导航的一个重要前提是机器人的自主定位能力。通常,相对于环境中的某个参考系进行定位。

全球定位系统(GPS)接收器是一种常见的传感器,它根据从低地球轨道卫星接收的信息提供经度和纬度方面的绝对定位以及地球上或附近任何地方的时间数据。接收机使用卫星信号的接收时间与其广播时间之间的差来计算其与卫星的距离。如图1a所示,通过访问来自至少四颗卫星的信息,接收机可以为户外导航提供精确到几米的定位信息。GPS的缺点是,如果无法获得至少四颗卫星的无障碍视线,定位数据就会变得不可靠。在城市地区,信号中断可能是由高楼或高山造成的[2]。此外,GPS信号在室内环境中不可用。

使用差分GPS(DGPS)可以减小GPS的定位误差。基本上,DGPS依靠地球上已知位置的多个固定信标。这些信标将其已知位置与基于接收的卫星信号和广播校正信息计算的位置进行比较,如图1b所示。GPS接收机可以使用这些信标广播的校正信号来减少它们的定位误差。DGPS的缺点是,当远离基站/参考站时,校正质量会降低[46]。

障碍物检测传感器

在本节中,将介绍常用于障碍物检测和回避的不同类型的传感器。

视觉传感器:声称机器人系统具有自主导航能力几乎是不可能的,除非为机器人配备障碍物检测和回避手段。当涉及到障碍物检测时,可以想到各种传感器类型。单目(图2a)和立体/RGBD相机(图2b)以合理的价格提供了丰富的视觉数据。基于DL的强大视觉算法和具有合理处理能力的相对经济的边缘设备(如Jetson板[3])的出现,使视觉传感器成为执行包括障碍物检测在内的各种视觉任务的理想选择。在机器人移动期间,车载摄像头可能会受到振动,从而使拍摄的图像模糊。稳定视觉系统[26]解决了这个问题,其示例如图2c所示。稳定的视觉系统也提高了跟踪能力。

距离传感器:障碍物检测最方便的解决方案之一是使用距离传感器测量飞行时间。雷达(无线电探测和测距)依靠无线电波来探测物体的距离、角度和/或速度。典型的雷达如图3所示。LiDAR(光探测和测距)的工作与雷达相似,但它使用的不是无线电波,而是脉冲激光。与雷达相比,激光雷达传感器能够以更高的精度测量距离数据。这些传感器的缺点是价格昂贵。此外,由于水的激光干扰,激光扫描仪无法感知玻璃障碍物,也无法在水下使用[245]。典型的激光雷达如图3所示。

超声波传感器也提供距离数据,但与激光雷达和雷达相比精度要低得多。超声波传感器的总射程比激光雷达和雷达低(约七米)。超声波传感器的精度较低是因为它的辐射模式类似蝙蝠。因此,在接收到撞击障碍物的发射信号的反射之后,只能在发射波覆盖的区域内模糊地估计感测到的障碍物的位置。这与激光雷达(LiDAR)和雷达(RADAR)形成对比,后者提供了更准确的障碍物位置数据。典型的超声波传感器如图3所示。

相对定位传感器

前文对绝对定位传感器进行了调查。然而,在某些情况下,绝对定位是不可能的,这是使用相对定位传感器(如惯性测量单元(IMU)和编码器)的动机。IMU由沿{x,y,z}轴的三个加速计和三个陀螺仪组成。当IMU安装在机器人上时,加速计和陀螺仪分别测量机器人沿三个轴的加速度和旋转速率。使用惯性导航系统(INS)[283]的成熟数学,可以将IMU读数转换为机器人的有用3D位置和3D方向。由于IMU数据的连续集成,估计的机器人位姿受到累积误差的影响,通过将INS数据与其他传感器(如GPS和摄像机)融合,可以减少累积误差。另一种可用于地面机器人相对定位的传感器是旋转编码器。将编码器安装在机器人车轮上,可以计算车轮已完成的轮数。知道轮子的周长,就可以估计机器人的位移量。使用编码器的缺点是车轮打滑会导致错误的位移估计。

移动机器人平台

多年来,设计和开发了不同类型的移动机器人平台。移动机器人可以是地面[41、55、253、288]、空中[24、129、200]或水下[68]车辆。

地面车辆

地面车辆的尺寸和形状各不相同,这取决于其设计目标。除了结构差异外,安装在这些机器人上的传感器套件取决于其操作环境。在室内环境中,GPS无法访问,但由于周围的墙壁、门、家具等,环境通常具有丰富的特征。因此,可以使用距离传感器进行扫描匹配[165],以实现精确定位。使用双目相机也是实现深度数据的一种经济实惠的解决方案。机器人底盘周围的超声波传感器环也是室内环境中障碍物检测[156]或定位[211212]的可行解决方案。室内环境图示如图4所示。无论是室内还是室外,INS都可以用于基于IMU数据的定位。室内环境通常有光滑的地板,因此车轮不可能打滑,旋转编码器非常适合估计机器人的位移。

对于室外环境,GPS可以帮助绝对定位,前提是GPS接收器和至少四颗卫星之间有清晰的视线。在城市环境中(图5a),由于高楼的信号阻挡,可能会违反这些条件。然而,城市环境本质上结构良好。通过对LiDAR数据进行扫描匹配,可以利用该特性来提高定位精度[302]。即使GPS信号可用,扫描匹配仍然可以提高定位精度[175]。另一种方法是视觉位置识别(VPR)[63194284],它通过识别以前去过的地方,在减少定位误差方面发挥着重要作用。

在一些户外应用(例如军事)中,移动机器人会遇到恶劣、非结构化、有时无法穿越的越野环境。越野环境将移动机器人的机械[30]和自主能力[141]推向极限。如图5b所示,越野机器人必须配备大车轮、长行程悬架,最好配备全轮驱动能力,以便能够穿越不同类型的土地,如泥泞、岩石、雪地等。除了越野环境的机器人机械要求外,为了实现成功的导航,机器人的自主软件模块必须解决几个挑战:

  • 鉴于越野环境不遵循任何特定的结构[277],自主导航无法事先对其进行任何假设;
  • 一些越野环境,如沙漠,是没有特色的,这阻碍了机器人的定位,因为缺乏可识别的地标。例如,在沙漠中,由于风沙的移动,甚至地形形状也会发生变化;
  • 由于深谷、崎岖的河流、火山等,越野环境非常危险。因此,在路径规划过程中考虑不可通行的区域,以确保机器人安全至关重要;
  • 在越野环境中,一些障碍物可能像灌木丛一样可以通过,而其他障碍物则像山脉一样无法通过。检测可通过障碍物的能力对于通过移动可通过的障碍物缩短计划路径的长度至关重要;
  • 自主导航依赖于机器人传感器读数来做出决定。然而,由于密集的植被阻碍了有效的定位,传感器的视野可能受到限制;
  • 根据越野环境,必须对机器人运动控制器参数进行不同的调整[54]。例如,在下雪的环境中,施加到机器人车轮上的力的大小不同于尘土飞扬的土地。

无人机

虽然控制地面车辆比无人机(UAV)简单,但它们的移动仅限于可穿越的地面。与地面车辆相比,空中车辆不受这些限制,它们可以在更短的时间内到达期望的位置。然而,飞行器也有一些局限性。例如,飞行持续时间可能很短,特别是对于低级别的无人机。此外,控制模块的故障可能会导致无人机发生灾难性坠毁。另一个缺点是有效载荷有限。无人机可以承载有限的负载,这意味着必须明智地选择可安装在其上的一组硬件(例如传感器和处理单元)。鉴于IMU通常体积小且重量轻,使用它们来实现INS以有效地定位无人机是非常流行的。如图6a所示,UAV可以部署到各种户外环境,例如城市或非结构化和越野环境。为了保持INS误差有界,GPS传感器可以安装在无人机上[28,75,221,308]。在室内环境中使用无人机也是可能的。与室外场景的唯一区别是GPS信号不可用。代替GPS,INS数据可以与激光雷达[180]、激光数据和视觉传感器的混合[146]、超宽带(UWB)[266]、UWB和3D激光雷达的混合[178]融合。甚至还尝试了无人机室内/室外导航模式之间的无缝切换[60]。此外,霍尔效应传感器数据已用于帮助INS的速度更新[306]。霍尔效应传感器通过利用霍尔效应检测磁场的存在和大小。根据这种效应,垂直于电导体中的电流的磁场在电导体两端产生电压差,使得其与电流和磁场横向。

水下车辆

AUV可用于各种应用中,例如取回在海洋中坠毁的飞机黑匣子[139244],通过探测和处置爆炸物和地雷来加强港口和港口的安全[29,241],以及石油和天然气行业的基础设施维护[57,138,297,309]。然而,由于GPS不可用[112]和能见度有限,水下自主导航(图6b)具有挑战性。未能使用视觉特征配准机器人的当前位置会导致定位不准确,进而阻碍自主导航[239]。使用DR和INS定位AUV由来已久[172]。然而,由于水下环境中的噪声传感器数据、洋流和地球重力,这些方法存在累积误差[112]。为了处理累积误差,可以使用地球物理导航(GN)[243],其中AUV传感器读数与水下环境的地球物理地图相匹配。不幸的是,GN存在一些缺点,例如在导航开始之前需要环境的地球物理地图,以及将传感器数据与地图匹配的计算复杂性。作为GN的替代方法,可以使用声学测距系统[95],但它们依赖于复杂的基础设施,部署成本很高。研究人员已经探索了AUV定位的新替代方案,如光学技术[53]。然而,由于水下环境的恶劣条件,这些技术的发展速度已经放缓。在适当的照明条件下,视觉处理系统可以显著提高定位精度[112]。例如,Mehdi等人[1999]融合了IMU和从立体摄像系统提取的深度数据,以使用ROS中实现的SLAM绘制水下环境地图。该地图用于路径规划和自主导航。

AUV适合传感器:第一个使用INS水下定位的传感器是IMU。为了处理INS累积误差,将IMU数据与其他传感器融合是至关重要的。多普勒速度记录仪(DVL)[20]是一种用于测量水下运动的声纳系统,可以确定AUV运动的速度和方向。关于绝对定位,GPS不能在水下使用,因为它的电磁信号衰减很快。声学信号是另一种解决方案,因为声学信号在水下衰减非常缓慢[126]。这种方法的缺点是它依赖于在导航环境中部署的基线站。基线电池需要频繁充电,以保持功能并响应安装在AUV上的询问器设备。此外,基线部署和恢复耗时且成本高昂,这使得声学导航在大规模环境中不切实际[158]。为了解决这个问题,麻省理工学院的研究人员开发了水下反向散射定位(UBL)[110],这是一种无电池精确定位系统。UBL不发射需要电池消耗的声学信号,而是反射来自其周围环境的调制信号。这样,在不需要任何电池操作的设备的情况下提供位置信息。UBL扮演水下GPS的角色。

前视声纳和侧扫声纳等声纳传感器家族[151]广泛用于水下障碍物探测和定位。现成的水下摄像机系统[196]也非常常用于基于立体视觉提取深度数据。

仿真工具

为了在机器人领域进行研究,需要一个合适的机器人平台,它是软件和硬件组件的组合。在研究过程中,需要进行各种实验。这些实验很可能由于软件和/或硬件模块故障而失败。有时,这些故障可能会损坏机器人。另一方面,在真实的机器人上进行实验既乏味又耗时。另一种方法是在仿真中实现和测试机器人软件。这样,研究人员就不必担心意外损坏机器人,也不需要硬件来测试最初的想法。重置模拟场景也比重置现实世界中的机器人状态容易得多。在表2中,提供了一些主要机器人模拟器的特性[4]。

虽然在模拟中测试新想法是有益的,但这并不是机器人项目的最终目标。迟早,模拟项目必须在真实机器人上进行评估。使用模拟器的缺点是,为了模拟真实世界的物理规律,可能已经做出了一些妥协。因此,在模拟中测试的项目可能需要一些改进和手动调整,以准备在真实机器人上部署。尽管如此,在部署到真正的机器人上之前,花时间和精力在模拟中开发机器人项目绝对是值得的,因为这大大缩短了开发时间和成本。在现有的模拟器中,像Gazebo这样的一些模拟器依赖于高质量的物理引擎,如开放式动态引擎(ODE)[5],以大幅减少模拟机器人和真实机器人之间的差距。这就是为什么许多知名机器人公司依靠ROS和Gazebo以软件包的形式为客户提供商业机器人的模拟工具。ROS是一组专门为促进机器人应用程序开发而设计的工具和软件库。使用ROS,机器人项目的开发时间大大缩短,因为可以使用高质量的现成软件包,这些软件包实现著名的算法并与各种传感器(硬件抽象)接口。ROS和Gazebo中具有下降模拟的知名机器人的一些示例包括但不限于Fetch机器人[6]、PR2机器人[7]、KUKA iiwa[8]和人形Nao机器人[9]。

路径规划

在使用机器人机载传感器感知环境之后,有必要规划一条可行的路径,以便从当前位置开始到达期望的目标。路径规划算法的选择取决于环境地图是否可用。在地图已知的情况下,路径规划器的选择取决于地图表示。对于占用网格图,D*[267]及其扩展(如聚焦D*[268]和D*Lite[163])是合适的选择。D*及其扩展都被认为是增量搜索算法。D*假设环境中看不见的部分没有障碍。基于这一假设,D*使用地图计算从起点到目标的最短路径。如果观察到新的障碍物,地图将更新其信息,并在必要时计算新的最短路径。这一趋势一直重复,直到达到目标或得出结论,目标确实无法实现。考虑到在导航过程中观察新障碍物的可能性很大,重新计算最短路径的速度必须很快,这就是D*及其扩展的著名之处。值得注意的是,聚焦D*是A*[125]和原始D*算法思想的结合;D*Lite是基于life long规划A*(LPA*)[164]和另一种结合A*思想和动态SWSF-FP[240]的增量搜索方法构建的。

基于DMP的路径规划

机械手机器人中轨迹规划和控制信号生成的流行方法之一是dynamic movement primitive(DMP)[136, 252]。DMP是一种高度自适应的数学模型,能够表示复杂的轨迹,而无需对其参数进行调整。粗略地说,DMP是一个二阶非线性动力学系统,只要其参数设置得当,就能模拟复杂的轨迹。DMP是离散的或有节奏的,分别适合于生成非周期性和周期性轨迹。离散DMP适合于路径跟踪,因为计划的路径不是周期性轨迹。离散DMP的关键是point-attractor子系统:

仔细检查等式1可以发现,它只是一个PD控制器,其目标是在给定当前状态下达到。为了指定之间的轨迹形状,方程1用称为强迫函数的特殊函数来扩充[252]:

通过设置强制函数的参数集,可以使用DMP生成任意轨迹。规范系统控制DMP的使用寿命。

尽管DMP主要设计用于机器人机械手的运动规划,但它也被用于移动机器人的路径规划。例如,Jiang等人[140]使用DMP进行了移动机器人路径规划。首先规划期望的路径,并从中提取轨迹以用作DMP参数调整的训练样本。得益于DMP的高度适应性,Jiang等人能够在改变开始和目标位置的情况下为移动机器人实现平滑的轨迹。

路径跟踪

为了执行计划的路径,移动机器人必须配备必要的手段来跟随它们。多年来,已经开发了各种路径跟踪方法。其中一些方法简单到纯粹的追求,而另一些方法则通过依赖动态系统或深度学习来采取更复杂的方法。本节将回顾其中一些路径跟踪方法。

纯跟踪方法

Pure pursuit[72]是一种历史悠久的路径跟踪算法,因为它已用于各种项目,如Terragator[62]、NavLab[278]和NavLabs2[73]。简言之,纯跟踪算法在假设恒定线速度的情况下计算机器人角速度。机器人从其当前位置移动到其前方的某个前方观察点。到达指定的前方观察点后,它将在要遵循的路径上进一步移动。

该算法计算将机器人当前位置连接到目标位置的弧。目标点是距机器人当前位置的一个前瞻距离。图7显示了机器人的局部坐标系以及目标点。目标是计算将机器人当前位置连接到目标位置的弧的曲率,假设弦长(向前看距离)为1。目标点强制位于机器人路径上。曲率值的计算相当简单。参见图7,可以写出以下等式:

其中等式4来自左侧较大三角形中的勾股定理,等式5是由于x和d的和等于曲率半径r的事实。使用方程4和5,曲率可以计算为:

基于DMP的路径跟踪

如第5节所述,DMP是一种为机械手机器人生成平滑轨迹的流行工具。然而,它也被用于移动机器人的路径跟踪。Sharma等人[260]为非完整机器人实施了一种基于DMP的路径跟踪方法,该方法能够避免路径上的障碍物。使用两个DMP(表示沿x和y轴的运动),并使用径向基函数(RBFNs)对每个DMP的强制函数进行参数化。由于DMP的自适应特性,所提出的方法可以保持计划轨迹的形状,即使开始或目标位置改变,也可以达到目标。此外,所提出的方法能够建议通过障碍物两侧的两个轨迹。当两条路径中的一条由于某种原因无法遍历时,这特别有用。

基于DL和RL的路径跟踪

受RL取得的有趣学习结果的启发,它已扩展到处理具有连续状态和动作空间的问题。这一趋势通过借鉴DL的思想得到了加强,从而产生了能够控制具有连续和高维状态和动作空间的机器人的鲁棒深度RL(DRL)方法。例如,Cheng等人[66]将DRL应用于路径跟踪和障碍回避。路径跟踪是通过设计适当的状态和奖励函数来实现的,这些函数对于任何RL代理的成功训练都至关重要。为了实现避障,对上述奖励和状态函数进行了修改,以考虑距离和角度来检测障碍物。本工作中使用的RL算法为DDPG[182]。所提出的方法已经在仿真中进行了评估。

传感器融合方法

移动机器人的有效定位是一项具有挑战性的任务。定位模块必须处理多个不确定性源,以便及时以合理的精度估计机器人位置。最简单的定位形式是航位推算(DR)[67]。在该方法中,移动机器人的运动方程是基于机器人的结构特性(如车轮周长)、车载传感器(如IMU、磁力计和旋转编码器)设计的。知道车轮旋转的次数(使用旋转编码器)和移动方向,可以及时估计机器人在每个位置的位置和方向。然而,传感器读数总是有噪声,因此估计位置容易出错。由于周围环境的随机现象,情况变得更糟。例如,在车轮打滑的情况下,旋转编码器报告车轮移动,然而,由于打滑,机器人可能根本没有移动,从而导致错误的位置估计。为了处理定位误差,通常的做法是融合来自多个传感器的读数以获得更好的位置估计。本文回顾了经典的卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波、多状态约束卡尔曼滤波、粒子滤波,公众号之前已经有文章讲的很清楚了,再此不在赘述,详情移步以下文章:

避障

当移动机器人在其操作环境中导航时,它们必须处理各种障碍物才能到达目的地。因此,在导航过程中避开障碍物的能力是自主系统中的关键模块。障碍物的位置可能是环境地图的一部分,但通常事先不知道地图。因此,高度期望自主移动机器人能够在导航期间实时检测和避开障碍物。本节将对文献中存在的几种避障方法进行综述。

传统方法

避障方法的历史几乎与移动机器人的出现一样悠久,这并不奇怪,因为如果没有避障,移动性就没有多大用处。在本小节中,回顾了经典的避障方法。

BUG算法系列:一组最简单的避障方法是Bug算法。顾名思义,这些算法模拟了在途中遇到障碍物时的错误行为。Bug算法家族始于Bug1和Bug2的提出[189]。Bug1和Bug2的避障机制如图12a和12b所示。根据图12a,每当Bug1撞上障碍物时,它都会围绕障碍物完成一个循环,在第二个循环中,它会离开障碍物并继续朝着目标前进,直到到达目标或检测到新的障碍物。如图12b所示,Bug2假设从起点到目标点有一条假想线,并绕过与这条线相交的任何障碍物。显然,与Bug1相比,Bug2在行驶距离方面更有效。Bug2+[35]是Bug2的改进版本。在Bug2+中,修改了从障碍边界跟随切换到运动到目标的条件,以缩短从起点到目标的路径长度。

Bug家族的另一个算法称为CBUG[105],它考虑面积等于的椭圆,从而使起点和终点形成椭圆的焦点。在该椭圆内,执行Bug1以尝试达到目标。如果在当前椭圆中无法达到目标,则其面积将增加到,其中是迭代计数。在新椭圆内再次执行Bug1。这一趋势会重复出现,直到达到目标或得出无法达到目标的结论。如[105]所示,CBUG是具有恒定内存需求的最佳在线规划器。

Bug2+最初设计用于未知环境,但它已与A*结合使用,以利用环境地图,从而缩短路径长度。结果方法是名为ABUG[34]的随时计划器。随时计划的优点是,他们可以快速规划次优路径,并在导航过程中修改路径。“随时计划”一词意味着计划过程可以随时中断,并且有一条有效的路径可用。给规划者的时间越多,规划的路径就越好。在ABUG的情况下,无论何时遇到障碍,Bug2+都可以从左侧或右侧绕过它。给定环境地图,路径上的所有障碍都是事先知道的。这就是A*出现的地方。对于每个障碍物,都会创建一个对应于绕过障碍物左侧或右侧的二进制节点。障碍物集合形成二叉搜索树。在树上运行A*为我们提供了从开始到目标的最佳路径。

也许最重要的Bug算法之一是TangetBug[145],基于该算法提出了其他方法,如WedgeBug[171]和CautiveBug[192]。WedgeBug使用双目视觉进行障碍物检测,其能耗、计算复杂性和内存使用已降至最低,以满足火星车有限的资源。WedgeBug这个名字是因为这个算法能够使用有限的(30°至45°) 双目视觉的楔形视野。该算法检查环境的一部分,如果需要,旋转其双目视觉系统以检查已经观察到的区域附近的区域。通过这种方式,有限的视野得到了处理。EdgeBug经过进一步修改,诞生了用于Rock7火星车[171]的RoverBug[170]。

TangentBug利用激光扫描仪等距离传感器在实际碰到障碍物之前检测障碍物。这样,朝向目标的行进路径显著减少。每个检测到的障碍物由其两个端点表示。例如,在图12c中,机器人被四个障碍物包围,这些障碍物由六个端点组成。TangentBug有两种主要行为模式,即运动到目标(M2G)和墙跟随(WF)。最初,行为设置为M2G。在这种模式下,机器人采取直接路线到达目标G。如果障碍物干扰直接路线,机器人计算障碍物两个端点的启发式距离,如图12d所示。启发式距离由下式计算:

在WF期间,机器人沿着障碍物边界移动,直到满足以下条件之一:

  • 目标实现了→算法因成功而停止;
  • 机器人围绕障碍物完成一个完整的循环→ 由于目标不可达到,算法因失败而停止;
  • 方程式$d_{Reach}

另一种考虑到实际限制而提出的方法是I-Bug[274]。该方法被设计用于处理不准确的定位和有噪声的传感器读数。假设目标点发出可由机器人上的特殊传感器检测的信号。当机器人越来越接近球门时,信号强度增加,而当机器人离开球门时,则信号强度下降。信号强度测量传感器是机器人上唯一的精确传感器。除了这个传感器之外,机器人还配备了一个传感器,用于确定机器人是否面对目标。虽然机器人不知道自己在环境中的位置和障碍物位置,但I-Bug能够达到目标。Bug算法家族甚至已经扩展到处理移动障碍物。所得算法称为距离直方图Bug(DH Bug)[314]。

曲率速度法:Bug算法简单且易于实现,但它们不考虑机器人的运动学和/或动态约束。相反,曲率速度法(CVM)[262]在一定程度上考虑了机器人运动学约束,甚至动态约束。

为了进行避障,CVM将环境阻挡障碍物施加的物理约束以及机器人的加速度和速度限制转换为速度空间。假设机器人只沿着具有曲率的圆弧移动,速度空间由旋转速度和平移速度组成。CVM将障碍物从笛卡尔网格映射到速度空间。根据机器人与障碍物之间的距离绘制地图。映射后,可以确定由于阻挡障碍物而必须过滤掉的旋转速度和平移速度的范围。

当然,避障方法必须是实时的。为了满足这一要求,CVM对圆形障碍物进行了建模(图13)。这样的建模可能会导致某些障碍物的形状表现不佳。这是CVM的主要缺点。

势场:势场[153]最初设计用于机械臂的控制和避障。然而,由于其简单和有效性,势场也被移动机器人社区所采用。势场将机器人建模为在各种吸引和排斥势场的影响下在环境中移动的点。目标是吸引力的来源,而障碍物充当排斥力。在此设置中,施加到机器人的总力是排斥力()和吸引力()的总和[153]:

吸引力和排斥力通过从吸引力和排斥势函数中获取梯度来计算。因此,有必要定义这些函数,使其可微:

其他如动态窗口方法[100]和矢量场直方图[51]可以参考具体论文。

使用RL和DL避障

多年来,计算机的发展大大减轻了移动机器人平台的计算负担。这为使用更强大的方法铺平了道路,如DL和强化学习,这些方法对处理能力要求更高。在本小节中,回顾了最先进的避障方法。

为了能够避开环境障碍物,需要机器人与障碍物之间的距离。LiDAR传感器提供高精度的距离数据,但成本高昂。更便宜的替代方案是通过两台相机之间计算的视差图提供深度数据的立体相机。然而,获取正确的距离数据取决于双目摄像机的适当标定,并且估计的距离仅限于几米(远小于激光雷达)。为了避免标定过程,可以使用单目相机,代价是丢失深度数据。然而,最近DL的进步使得仅使用单个相机就可以估计深度。为此,Wenzel等人[296]利用生成对抗网络(GAN)[113]将RGB图像转换为其相应的深度图像。这种方法不仅可以从单个相机进行深度估计,还可以弥补模拟和现实应用之间的差距。由于DL方法的强大特征提取,深度估计成为可能。由于GAN不关心RGB图像的来源,并且它可以估计模拟图像和真实图像的深度图,因此实现了模拟和真实世界之间的差距。作者训练了深度强化学习代理,如深度Q网络(DQN)[203]和近端策略优化(PPO)[256],以生成输入深度图像的适当控制命令。利用RL避障的历史先于臭名昭著的DQN方法的诞生。例如,Huang等人[134]使用神经网络来估计Q学习代理的Q函数,而不是依赖于查找表。

除了RL,基于DL的避障模块也可以以监督的方式进行训练。Liu等人[183]通过向基于AlexNet[168]的DL模型提供原始图像并使用模型输出作为转向命令,实现了室内障碍物回避。基于输入图像,机器人被向左、向右转向并被命令直行。DL模型的训练已经使用在由人类操作员控制的机器人运动期间收集的数据来完成。为了促进实施,使用了ROS。

导航方法

自主导航方法要么基于地图,要么无地图。在基于地图的方法中,环境地图在导航开始之前是已知的,但对于无地图方法则不是这样。显然,具有环境地图有助于有效的路径规划。然而,在许多情况下,环境地图事先不为人所知,这导致了第10节中所述的无地图导航和同时定位与建图(SLAM)的发展。

基于地图的导航

基于地图的导航的质量直接受环境地图的表示方式及其精度的影响。地图表示是度量的或拓扑的。在度量地图中,检测到的障碍物、地标、机器人等的位置是相对于某个参考系来表示的[201]。图15b以2D网格的形式示出了与图15a中的环境相对应的典型度量图。如图所示,在网格地图中,检测到的障碍物、机器人位置等相对于某些特定的XY参考框架表示。该网格的每个单元表示被障碍物占据的概率。黑色较深的网格单元更容易被障碍物占据。概率占用网格可以使用多种方法实现。贝叶斯占用网格(BOG)[210]依赖于贝叶斯规则来估计网格图的每个单元被占用的概率。BOG已用于一些映射方法[91,133]。实现占用网格的其他方法基于反射图[281]和期望最大化[280]。

自然,当距离传感器可用时,将环境地图表示为2D或3D网格是有用的[116,123,285]。然而,由于存储地图所需的存储器大小随着距离数据的获得和处理而增加,因此存储大规模环境地图的存储器需求可能是禁止的[98]。为了保持网格地图的内存需求可管理,已经进行了多次尝试[90,133,152]。

除了距离传感器,相机传感器还提供丰富的视觉特征。这些特征可用于实现地标地图[208265],其对于环境中存在局部可区分特征的场景有效。例如,再次考虑图15a中的环境,并假设该环境的不同区域中存在可区分的特征。使用这些特征,可以生成类似于图15c中的拓扑图。基于上述可区分的视觉特征,拓扑图的每个节点表示环境中的特定区域。彼此可访问的区域由拓扑地图中的边连接。例如,(房间4)可通过拓扑图(15c)中所示的(转弯1)访问,其边缘将连接到。将拓扑图视为无向图,可以使用现成的图路径规划算法来找到机器人位置和目标位置之间的最短路径(如图15c所示)。在现实世界的应用程序中,环境地图很可能只是部分已知的。为了在这种情况下执行自主导航,Sgorbisa和Renato提出了一种混合导航方法,以在机器人运动期间利用可能不完整的环境地图和局部感知,从而实现安全无碰撞导航[257]。

无地图

自主无地图导航是在不访问环境地图的情况下控制移动机器人朝向期望目的地的行为。无地图导航的问题已经解决了好几次。如[120]中所指出的,用于室内机器人导航的基于无地图视觉的技术可分为:

  • 基于光流的方法:简而言之,图像序列中视觉特征的运动被定义为光流。robee[48]是基于光流的无地图导航方法之一。在这种方法中,蜜蜂的视觉系统被模拟成使用双目摄像机在环境中导航而不与障碍物碰撞。光流还被用于实现走廊跟踪行为[86]以及基于特征的导航系统[276]。
  • 基于外观的匹配:在这种方法中,环境的某些模板和图像被记忆。然后将存储的数据与控制命令相关联,以引导机器人朝向期望的目的地[81]。基于外观的方法的主要挑战是找到合适的方法来根据突出特征来表达环境,以及定义识别环境某些区域的匹配标准[50]。视觉记忆[107]是一种基于外观的方法,其中在机器人运动期间捕获一系列图像。捕获的图像与到达特定目的地所需的适当运动相关联。图像、它们的相关运动和模板匹配算法可用于构建机器人路线。另一种基于外观的方法是基于捕获图像的统计分析(与颜色、纹理和边缘密度相关)提取的多维直方图[254,312]。通过匹配存储位置的直方图和为机器人的当前位置计算的直方图来完成位置的识别。
  • 物体识别:基于外观的方法主要集中于记忆周围环境。然而,可以使用符号导航[154155]。在这种方法中,检测到的障碍物存储在称为S图的2D网格图中。使用该地图,完成路径规划,并向机器人发出符号命令,如“到主出口”或“到前面的角落”[120]。
  • 基于特征的导航方法:在这些方法中,通过从图像序列中提取特征并跟踪这些特征在机器人运动过程中的相对位移来确定机器人的运动。基于特征的导航方法的一个例子是漏斗车道[65],其中机器人的任务是通过将来自其单摄像机的图像馈送与先前记录的图像序列(称为视觉路径)相匹配来遵循先前走过的路径。漏斗道方法是完全定性的,不需要任何类型的环境图。该方法已扩展到倾斜漏斗车道[149],以解决某些场景中平移和旋转之间的模糊性等问题,并实现更好的机动性。

RL还被用于在需要快速和自适应动作选择的高度动态环境中实现无地图自主导航。例如,Fan等人[96]优化了一种无地图导航策略,该策略能够在高度动态的环境(如行人拥挤)中进行机器人控制。作为本地规划器,使用PPO对策略进行优化,并将策略表示为具有四个隐藏层的CNN。

SLAM

同时定位和建图(SLAM)可以被认为是一个概念,而不是一种特定的算法[245]。这一术语是根据休·杜兰特·怀特(Hugh Durrant Whyte)和约翰·J·伦纳德(John J.Leonard)[173]的原著创造的,他们的研究是基于史密斯、赛尔夫(Self)和奇塞曼(Cheeseman)[265]的早期研究建立的。简而言之,SLAM的目标是在未知环境中定位移动机器人,同时根据观察到的环境地标来估计环境地图。粗略地说,SLAM的主要组成部分是地标提取、数据关联、状态估计以及状态和地标更新。

SLAM期间机器人位姿预测和校正的高级步骤如图16所示。如图16a所示,机器人测量到三个地标的距离,然后移动到新位置。使用机器人里程测量模型,预测新位置,如图16b中的实线机器人图所示。再次检查到三个地标的距离(图16c)。根据获得的测量结果,机器人位姿被修正,导致图16d中的橙色机器人。可以看出,修正后的位姿更接近地面真实位姿(图16d中的青色机器人)。IMU等传感器提供了有关机器人运动的宝贵信息,并在SLAM的预测步骤中发挥了重要作用[147]。另一方面,在SLAM的更新步骤中使用从相机获得的测量距离数据或视觉特征,以减少预测误差[204]。

SLAM解决方案可分为两大类:滤波(在线SLAM)和平滑(全SLAM)方法[33],下面将简要介绍。

  • 平滑方法依赖于最小二乘优化,使用迄今收集的所有传感器测量值来估计机器人的完整轨迹。因此,内存消耗很高,但仍有可能实时实现全SLAM[270];
  • 第二类SLAM方法是在线方法,与全SLAM方法相比,在线方法具有更低的内存消耗。这源于在线方法仅依赖于先前的位姿估计和传感器读数。然而,与全SLAM方法相比,较低的内存消耗以降低精度为代价。

除了在线或完整之外,SLAM方法还可以根据它们用于收集环境观测的传感器进行分类。使用距离传感器作为观测源的方法和使用相机传感器的方法分别称为激光雷达SLAM和视觉SLAM。表3总结了这些方法。

LiDAR SLAM

室内环境结构复杂,很可能在距离机器人60米的范围内有障碍物。这样的条件非常适合使用激光扫描仪来感知和绘制环境。基于LiDAR传感器的SLAM方法被称为LiDAR SLAM。尽管LiDAR传感器能够提供高精度数据,但通常伴随着高昂的价格标签,使得LiDAR SLAM成为一种昂贵的解决方案。

SLAM文献包括各种基于激光雷达的SLAM方法,如Hector SLAM[165]、基于关键帧的3D激光雷达SLAM[118]、Google Cartographer[131]、GMapping[116]和TinySLAM[269]。传统上,激光雷达传感器使用旋转机构来扫描周围环境。然而,最近的发展已经导致基于微机电系统MEMS技术的低功率和低成本LiDAR传感器。MEMS激光雷达的价格更实惠,这使其成为机器人研究人员的理想选择。然而,MEMS激光雷达的较低成本是以较短的距离(约9米)和较小的视野(FOV)为代价的,这使得激光雷达SLAM具有挑战性。将MEMS LiDAR数据与IMU等其他数据源融合可以提高SLAM性能[292]。已经表明,利用快速点云配准可以进一步提高定位和建图质量[294]。虽然使用LiDAR传感器可以提供具有卓越精度的距离数据,但其相对昂贵的价格标签是使用更便宜的替代品(如超声波传感器)的动机[71,76,143,301]。

Visual SLAM

另一种SLAM方法是视觉SLAM,其主要集中于单目/立体摄像机。视觉SLAM不得与视觉里程计(VO)混淆[304]。视觉SLAM主要是准备探索环境的全局地图,而VO则用于局部估计机器人姿态。

实现视觉SLAM的一种自然方法是从相机图像中提取特征,并使用它们来确定场景几何体和相机姿态。基于特征的方法要么基于滤波,如基于EKF的视觉惯性里程计[179],要么基于关键帧[159]。乍一看,基于特征的方法似乎非常直观。然而,这些方法限于由提取的特征的类型捕获的信息。正如[93]中所指出的,基于特征的方法在人造环境中会遇到困难。已经提出了一些基于边缘的[87,161]和基于区域的[70]来解决上述限制。在基于特征的方法中,并行跟踪和建图(PTAM)[160-162]的计算复杂度低到足以在使用其相机作为视觉数据源的移动电话上运行。PTAM使用FAST-10角检测器[246]进行特征提取。ORB-SLAM[214]基于ORB特征[248],能够处理小型/大型和室内/室外环境。ORB特性的使用使得ORB-SLAM可以实时运行,而不需要图形处理单元(GPU)。ORB-SLAM收到了两个重要的扩展,产生了该方法的第二个[215]和第三个[58]版本。第二个版本支持双目和RGBD相机。第一个版本仅限于针孔相机模型,但第三个版本(基于第一个和第二个版本以及ORB-SLAM-VI[216])适用于任何相机类型,前提是提供了相机模块。OV2SLAM[97]还提供了一种基于特征的方法,该方法比ORB-SLAM更准确、鲁棒和实时。

也可以采用直接(无特征)方法,其中使用图像强度中的所有信息。使用直接方法,完全避免了由于特征的有限表示能力而导致的显著信息丢失。其中一种直接方法是大规模直接单目SLAM(LSD-SLAM)[93],能够实时构建大规模和一致的环境3D地图。直接稀疏映射(DSM)[315]基于光度束调整(PBA),该调整引入了直接方法中地图重用的思想。DSM显示了中期数据关联的重要性。

虽然大多数SLAM方法都是基于视觉或激光雷达的,但多线索直接SLAM(MD-SLAM)[82]是唯一以统一方式支持激光雷达和RGBD传感器的开源方法。

回环检测技术

有效的SLAM模块必须能够识别先前访问的地点,以减少在多个时间步骤中累积的定位和建图误差。这种能力被称为回环检测。传统上,SIFT[187]和SURF[47]等特征描述符用于回环检测。然而,对于实时应用程序,这些方法在计算上效率很低。研究人员开发了基于单词包(BoW)方法的循环闭合机制[74106271],以弥补SIFT和SURF等描述符的高计算负荷。单词包是指从环境中提取的视觉特征字典,并将其聚集在一起形成所谓的单词。尽管速度很快,但Bow依赖于必须事先知道的固定视觉特征。毫不奇怪,BoW在未探索的环境中表现不佳。为了使BoW能够适应新的区域(以前没有探索过),可以在在线步骤中创建BoW[106]。然而,在线方法的内存要求很高。随着DL在各个领域的重大成就,它已被机器人界采用[219、238、261、310]。用DL增强SLAM的一个显著例子是DXSLAM[13176],它使用CNN提取显著特征以提高SLAM性能。

公开SLAM数据集

对SLAM方法进行研究需要访问多个传感器和移动机器人平台。除了准备上述硬件的成本外,单个研究人员可能很难建立一个SLAM可执行的硬件设置。另一种方法是在从真实机器人获得的公共数据集上开发和评估SLAM方法。Yin和Berger[303]审查了在公共道路上收集的27个公共可用数据集。其中一些数据集适用于SLAM方法的评估。这些数据集的汇总见表4。可以看出,现有的数据集涵盖了室内和室外的各种环境,具有不同的天气和照明条件等。最近,语义SLAM已经普及,这是准备适合语义SLAM的合成数据集的灵感。SSS数据集(ShanghaiTech Semantic SLAM)[59]是此类数据集的一个示例,它为场景组成和单个物体形状和姿态提供了准确的GT。

未来工作

现实世界中的移动机器人部署

研究自主移动机器人的最终目标之一是将其部署在制造业、医院、仓储等领域。实施多机器人设置很自然,可以更快地完成任务[218]。决定必须以集中或分散方式进行的操作是未来的一个重要方向[101]。还需要支持多机器人设置,并对必须安装在机器人上以执行特定任务的工具集进行有效决策[101]。

自主导航也被用于开发具有不同自主水平的自主船舶。在未来的工作中,重要的是在自主级别为D3和D4的海上自主水面舰艇(MASS)之间建立合作行为。D3自主是指在没有海员的情况下对船舶进行远程控制,而D4是指完全自主的船舶[228]。分析人机交互设置中的安全性也是至关重要的[157]。

SLAM

尽管SLAM文献中有大量的工作,但由于SLAM的复杂性和挑战性,未来的工作仍有重要的研究空白。对于有效的SLAM实施,至关重要的是在勘探(访问新地点)和开采(重新访问已知地点以减少不确定性)之间保持平衡[279],这是由主动SLAM解决的。主动SLAM的未来工作[235]包括主动空间感知、提出评估度量以促进方法的比较,以及执行基准以走向现实世界应用。

SLAM方法通常假设世界是静态的。然而,现实世界中充满了移动物体,这些物体导致了SLAM中的特征识别失败,从而导致跟踪失败[80]。作为未来的工作,DL和光谱方法[298299]可用于实现更鲁棒的特征识别和跟踪[190]。可以从SLAM的地图构建过程中检测和排除动态目标。目前,动态SLAM方法(如[272,273])用于处理环境的动态性。使用语义信息设计语义SLAM是解决动态SLAM的一个持续研究领域[190]。此外,使用语义SLAM将机器人的自主级别提升到下一个级别是对未来任务的挑战[64]。

虽然DL在回环检测方面显示出一些优点,但由于其局限性,真正的回环检测仍然没有得到解决[37]。该限制是由于基于视觉的回环检测方法对不同照明条件的敏感性。基于激光雷达的环路不会受到此类限制,但由于天气条件(如下雨),其性能会降低。提出混合方法,利用基于LiDAR和基于DL的方法的优点和缺点似乎是未来的一个必要方向[37]。

要在现实世界应用程序中部署可视化SLAM方法,它们必须可以在处理能力有限的智能手机等嵌入式平台上执行。因此,SLAM未来的重要工作之一是保持实时执行和准确性之间的平衡[64]。

未知环境中的自主探索

能够自主导航和探索未知环境是非常理想的。为此,Shah等人利用RL提出了一种名为RECON(用于结果驱动导航的快速探索控制器)[258]的方法,该方法是在18个月期间从不同的真实环境(包括不同的季节和照明条件)收集的视觉数据集[16]上训练的。RECON的两个主要组成部分是不确定性感知和上下文条件目标表示以及拓扑图表示。地图的节点表示以自我为中心的观察结果,边缘表示节点之间的距离。

扩展RECON,Shah和Levine[259]专注于在不需要精确地图或传感器数据的情况下,通过看不见的室外环境进行远程自主导航。他们的方法名为ViKiNG(基于视觉的公里级导航和地理提示)的优点有两方面。首先,ViKiNG在规划过程中使用不准确的数据(GPS坐标、卫星地图和示意路线图)作为启发式方法,设法到达给定的目的地。其次,该方法不构建几何地图,仅依赖于环境的拓扑表示。这样,在具有轻量级处理/存储平台的机器人上就不会遇到长距离构建和存储环境密集地图的问题。作者们使用只有80米长的轨迹训练了ViKiNG,但他们成功地达到了三公里外的目标。正如Shah和Levine所指出的,未来的重要工作之一是设计类似于ViKiNG的模型,能够接受文本指令和纸质地图等输入。

结论

自主导航已经走了很长的路,但这段旅程仍在继续。已经尝试了不同的传感器组合和数学方法,导致各种方法;每个都有自己的优点和缺点。本文试图对自主移动机器人的不同方面进行全面综述,包括定位方法、避障、传感器类型、SLAM等。论文还试图强调DL在加强避障和SLAM方法中的作用。综述了常用的仿真工具及其性能。此外,还引入了用于在没有实际机器人的情况下实现SLAM的公开可用数据集(包含真实传感器数据)。最后,指出了未来研究的可能方向。

参考

[1] A Comprehensive Review on Autonomous Navigation

往期回顾

2022最新!视觉SLAM综述(多传感器/姿态估计/动态环境/视觉里程计)


自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存